package com.线程Thread;
@SuppressWarnings("all")
/**
 * 创建线程的的两种方式：  （Thread类实现了Runnable接口）
 *  1继承Thread 类，重写run方法；    (Thread01)
 *  2.实现Runnable接口，实现run方法  (Runnable01)
 */
public class 线程的基本使用 {
    public static void main(String[] args) {
        /** 实现控制该线程每隔一秒输出 times，直到times = 8结束线程；
         */
        Cat cat = new Cat();//创建Cat对象，当作来使用
        cat.start(); //启动线程，调用start的时候自动调用run方法
    }
}

//1.继承Thread 类,该类就能当作线程使用
//2.重写run方法，写自己的业务代码；
//3.Thread类中的run方法其实是实现了Runnable接口的run方法 ，代码如下：
/**
 * @Override  //重写注解
 *     public void run() {
 *         Runnable task = holder.task;
 *         if (task != null) {
 *             Object bindings = scopedValueBindings();
 *             runWith(bindings, task);
 *         }
 *     }
 */
class Cat extends Thread{
    @Override  //重写Thread方法的run方法
    public void run() {
        int times = 0; //计数；
        while(true) {
            System.out.println(++times);
            try {
                Thread.sleep(1000);  //让线程睡眠1秒钟；（try-catch的原因是需要处理异常）
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            if(times == 8) return;
        }
    }
}
